package com.yanfan.maintain.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yanfan.attach.domain.model.ComboBoxBody;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 巡检任务表(InspectionTask)实体类
 *
 * @author makejava
 * @since 2023-03-10 10:15:57
 */
@Getter
@Setter
@ToString
public class InspectionTask implements Serializable {
    private static final long serialVersionUID = -47635952122455309L;
    /**
     * 详情列表
     *
     * @author caijinkang
     * @date 2023/3/22 17:44
     * @param null
     * @return null
     */
    List<CheckListBody> checkLists;
    /**
     * 主键
     */
    private Long id;
    /**
     * 巡检计划id
     */
    private Long planId;
    /**
     * 任务编号
     */
    private String number;
    /**
     * 任务名称
     */
    private String name;
    /**
     * 巡检时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date;
    /**
     * 缺陷总个数
     */
    private Integer flawTotal;
    /**
     * 缺陷未处理个数
     */
    private Integer flawUntreated;
    /**
     * 状态（1、待处理，2、处理中，3、已完成）
     */
    private Integer state;
    private Integer type;
    /**
     * 巡检人员
     */
    private Long executor;
    private String executorName;
    /**
     * 负责人
     */
    private Long principalId;
    private String principalName;
    /**
     * 联系方式
     */
    private String telephone;
    /**
     * 异常备注
     *
     * @author caijinkang
     * @date 2023/3/10 16:40
     * @param null
     * @return null
     */
    private String remark;
    /**
     * 创建人
     */
    private String createdBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdDate;
    /**
     * 修改时间
     */
    private Date lastModifiedDate;
    /**
     * 所属计划名称
     *
     * @author caijinkang
     * @date 2023/3/16 17:03
     * @param null
     * @return null
     */
    private String planName;
    /**
     * 周期
     *
     * @author caijinkang
     * @date 2023/3/16 17:03
     * @return java.lang.Long
     */
    private String periodDate;
    /**
     * 是否定期巡检
     *
     * @author caijinkang
     * @date 2023/3/16 17:05
     * @param null
     * @return null
     */
    private Integer regular;
    /**
     * 巡检规则（1、时，2、周，3、日）
     *
     * @author caijinkang
     * @date 2023/3/22 17:40
     * @param null
     * @return null
     */
    private Integer rule;
    /**
     * 巡检项数
     *
     * @author caijinkang
     * @date 2023/3/16 17:07
     * @param null
     * @return null
     */
    private Integer planCount;
    /**
     * 路线id
     *
     * @author caijinkang
     * @date 2023/3/22 11:47
     * @param null
     * @return null
     */
    private Long routesId;
    /**
     * 路线名称
     *
     * @author caijinkang
     * @date 2023/3/22 17:33
     * @param null
     * @return null
     */
    private String routesName;
    /**
     * 开始时间
     *
     * @author caijinkang
     * @date 2023/3/21 16:23
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginDate;
    /**
     * 结束时间
     *
     * @author caijinkang
     * @date 2023/3/21 16:23
     * @return java.lang.Long
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;
    /**
     * 路线list
     *
     * @author caijinkang
     * @date 2023/3/22 13:32
     * @param null
     * @return null
     */
    private List<RouteListBody> routeLists;
    /**
     * 是否定期巡检（1、定期，0、临时）
     *
     * @author caijinkang
     * @date 2023/3/22 17:16
     * @param null
     * @return null
     */
    private String regularName;
    /**
     * 巡检规则（1、时，2、周，3、日）
     *
     * @author caijinkang
     * @date 2023/3/22 17:16
     * @param null
     * @return null
     */
    private String ruleName;
    /**
     * 用户id
     *
     * @author caijinkang
     * @date 2023/4/4 11:24
     * @param null
     * @return null
     */
    private Long userId;

    /**
     * 设备ID
     */
    private Integer deviceId;

    /**
     * 设备名称
     *
     * @author caijinkang
     * @date 2023/4/6 18:20
     * @param null
     * @return null
     */
    private String deviceName;
    private String deviceSerialNumber;

    /**
     * 签到偏差距离
     *
     * @author caijinkang
     * @date 2023/4/4 11:22
     * @param null
     * @return null
     */
    private String checkInDeviation;

    /**
     * 处理建议
     *
     * @author caijinkang
     * @date 2023/4/4 11:27
     * @param null
     * @return null
     */
    private String recommended;

    /**
     * 完成时间
     *
     * @author caijinkang
     * @date 2023/4/4 11:26
     * @return java.lang.Long
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;

    /**
     * 创造者ID
     */
    private Long createId;

    /**
     * 任务内容
     *
     * @author caijinkang
     * @date 2023/4/4 11:28
     * @param null
     * @return null
     */
    private String content;

    private Integer currPage;

    private Integer pageSize;

    /**
     * 巡检路线列表
     *
     * @author caijinkang
     * @date 2023/4/6 10:26
     * @param null
     * @return null
     */
    private InspectionRoute inspectionRoutes;
    /**
     * 巡检任务图片
     *
     * @author caijinkang
     * @date 2023/4/6 17:41
     * @param null
     * @return null
     */
    private List<ComboBoxBody> imgUrl;

    private List<ImageUrl> imageUrlList;

    private List<InspectionTaskRouteLog> routeLogs;

    @TableField(exist = false)
    private String searchValue;

}

